package org.nanotek.cms.domain.document;

import java.util.Date;
import java.util.List;

import org.nanotek.Base;
import org.nanotek.DateBase;
import org.nanotek.cms.domain.Link;


/**
 *
 * @author josecarloscanovamauger
 *
 * A Class that represents an instance of a document, processed by Tika and Indexed by Lucene.
 * It's intended to be used on the persistent storage of the metadata, indexing extraction, providing
 * a base pointer to a set of URI's to locate the document.
 * The mime-type is optional and used just for "report purposes".
 *
 *
 */
@SuppressWarnings("serial")
public class MediaReference extends DateBase<String> implements Base<String> , KongBase<DateBase>{

	private String id;
	private Long size;
	private String mimeType;
	private List<Label> labels;
	private List<Link> locations;
	private DocumentRelation documentRelation;
	private DateBase <String>

	public MediaReference() {
		super(new Date(System.currentTimeMillis()));
		postConstruct();
	}

	private void postConstruct() {
		documentRelation = new DocumentRelation(this);

	}

	@Override
	public String getId() {
		return id;
	}

	public String getMimeType() {
		return mimeType;
	}

	public void setMimeType(String mimeType) {
		this.mimeType = mimeType;
	}

	public void setId(String id) {
		this.id = id;
	}

	public List<Label> getLabels() {
		return labels;
	}

	public void setLabels(List<Label> labels) {
		this.labels = labels;
	}

	public Long getSize() {
		return size;
	}

	public void setSize(Long size) {
		this.size = size;
	}

	public DocumentRelation getDocumentRelation() {
		return documentRelation;
	}

	public void setDocumentRelation(DocumentRelation documentRelation) {
		this.documentRelation = documentRelation;
	}

	public List<Link> getLocations() {
		return locations;
	}

	public void setLocations(List<Link> locations) {
		this.locations = locations;
	}

}
